#!/bin/bash

PROTOC_GEN_TS_PATH="./node_modules/.bin/protoc-gen-ts"
PROTOC_GEN_GRPC_PATH="./node_modules/.bin/grpc_tools_node_protoc_plugin"
PROTO_DIR="./protos"
OUT_DIR="./grpc_ts"

echo "run ..."

echo "check $OUT_DIR..."
if [ -d "$OUT_DIR" ]; then
  echo "$OUT_DIR exists."
else 
  echo "$OUT_DIR does not exist..."
  echo "create $OUT_DIR"
  mkdir -p $OUT_DIR
fi

echo "check $PROTO_DIR/*.proto..."
if compgen -G "${PROTO_DIR}/*.proto" > /dev/null; then
  echo "file $PROTO_DIR/*.proto exists."
  echo "generate..."
  npx grpc_tools_node_protoc \
    --plugin="protoc-gen-ts=${PROTOC_GEN_TS_PATH}" \
    --plugin="protoc-gen-grpc=${PROTOC_GEN_GRPC_PATH}" \
    --js_out="import_style=commonjs,binary:${OUT_DIR}" \
    --ts_out="service=grpc-node:${OUT_DIR}" \
    --grpc_out="grpc_js:${OUT_DIR}" \
    -I ${PROTO_DIR} ${PROTO_DIR}/*.proto && \
    echo "done"
else
  echo "please, copy proto file in $PROTO_DIR"
fi
